home *** CD-ROM | disk | FTP | other *** search
- #ifndef FWSTRGAR_H
- #define FWSTRGAR_H
- //========================================================================================
- //
- // File: FWStrgAr.h
- // Release Version: $ 1.0d11 $
- //
- // Copyright: (c) 1993, 1995 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef FWSTRING_H
- #include "FWString.h"
- #endif
-
- #ifndef FWSTREAM_H
- #include "FWStream.h"
- #endif
-
- #if FW_LIB_EXPORT_PRAGMAS
- #pragma lib_export on
- #endif
-
- //========================================================================================
- // CLASS FW_CStringArchiver
- //========================================================================================
-
- class FW_CLASS_ATTR FW_CStringArchiver
- {
- public:
-
- static void Read(FW_CReadableStream & archive,
- FW_CString &string);
-
- static void Write(FW_CWritableStream & archive,
- const FW_CString &string);
- };
-
- //========================================================================================
- // class FW_CDynamicStringArchiver
- //========================================================================================
-
- class FW_CLASS_ATTR FW_CDynamicStringArchiver
- {
-
- public:
-
- static void * Read(FW_CReadableStream & archive);
- // Read function for FW_REGISTER_ARCHIVABLE_CLASS macro.
-
- static void Write(FW_CWritableStream & archive,
- const void *object);
- // Write function for FW_REGISTER_ARCHIVABLE_CLASS macro.
- };
-
- //========================================================================================
- // class FW_CString32Archiver
- //========================================================================================
-
- class FW_CLASS_ATTR FW_CString32Archiver
- {
-
- public:
-
- static void * Read(FW_CReadableStream & archive);
- // Read function for FW_REGISTER_ARCHIVABLE_CLASS macro.
-
- static void Write(FW_CWritableStream & archive,
- const void *object);
- // Write function for FW_REGISTER_ARCHIVABLE_CLASS macro.
- };
-
- //========================================================================================
- // class FW_CString255Archiver
- //========================================================================================
-
- class FW_CLASS_ATTR FW_CString255Archiver
- {
-
- public:
-
- static void * Read(FW_CReadableStream & archive);
- // Read function for FW_REGISTER_ARCHIVABLE_CLASS macro.
-
- static void Write(FW_CWritableStream & archive,
- const void *object);
- // Write function for FW_REGISTER_ARCHIVABLE_CLASS macro.
- };
-
- //========================================================================================
- // FW_InitializeStrings
- //========================================================================================
-
- void FW_InitializeStrings(void);
-
- //========================================================================================
- // Static archiving
- //========================================================================================
-
- //########################################################################################
- // SCpp Hack
- // Work around SCpp 8.0.3 bug - importing overloaded functions doesn't work.
- // Replace overloaded functions with normal functions with different names.
- // Use inline overloaded functions which turn around and call the renamed
- // functions so client code isn't affected.
- //########################################################################################
-
- #if 0
-
- FW_FUNC_ATTR FW_CReadableStream& operator>>(FW_CReadableStream& stream, FW_CDynamicString& string);
- FW_FUNC_ATTR FW_CReadableStream& operator>>(FW_CReadableStream& stream, FW_CString32& string);
- FW_FUNC_ATTR FW_CReadableStream& operator>>(FW_CReadableStream& stream, FW_CString255& string);
-
- FW_FUNC_ATTR FW_CWritableStream& operator<<(FW_CWritableStream& stream, const FW_CDynamicString& string);
- FW_FUNC_ATTR FW_CWritableStream& operator<<(FW_CWritableStream& stream, const FW_CString32& string);
- FW_FUNC_ATTR FW_CWritableStream& operator<<(FW_CWritableStream& stream, const FW_CString255& string);
-
- #else
-
- FW_FUNC_ATTR FW_CReadableStream& _FW_StreamInDynamic (FW_CReadableStream& stream, FW_CDynamicString& string);
- FW_FUNC_ATTR FW_CReadableStream& _FW_StreamInStr32 (FW_CReadableStream& stream, FW_CString32& string);
- FW_FUNC_ATTR FW_CReadableStream& _FW_StreamInStr255 (FW_CReadableStream& stream, FW_CString255& string);
-
- FW_FUNC_ATTR FW_CWritableStream& _FW_StreamOutDynamic (FW_CWritableStream& stream, const FW_CDynamicString& string);
- FW_FUNC_ATTR FW_CWritableStream& _FW_StreamOutStr32 (FW_CWritableStream& stream, const FW_CString32& string);
- FW_FUNC_ATTR FW_CWritableStream& _FW_StreamOutStr255 (FW_CWritableStream& stream, const FW_CString255& string);
-
- #endif
-
- #if FW_LIB_EXPORT_PRAGMAS
- #pragma lib_export off
- #endif
-
- #if 1
-
- inline FW_CReadableStream& operator>>(FW_CReadableStream& stream, FW_CDynamicString& string) {
- return _FW_StreamInDynamic (stream, string);
- }
-
- inline FW_CReadableStream& operator>>(FW_CReadableStream& stream, FW_CString32& string) {
- return _FW_StreamInStr32 (stream, string);
- }
-
- inline FW_CReadableStream& operator>>(FW_CReadableStream& stream, FW_CString255& string) {
- return _FW_StreamInStr255 (stream, string);
- }
-
-
- inline FW_CWritableStream& operator<<(FW_CWritableStream& stream, const FW_CDynamicString& string) {
- return _FW_StreamOutDynamic (stream, string);
- }
-
- inline FW_CWritableStream& operator<<(FW_CWritableStream& stream, const FW_CString32& string) {
- return _FW_StreamOutStr32 (stream, string);
- }
-
- inline FW_CWritableStream& operator<<(FW_CWritableStream& stream, const FW_CString255& string) {
- return _FW_StreamOutStr255 (stream, string);
- }
-
- #endif
-
- #endif
-
-